package com.wgy.day38方法引用.类的构造器引用;

/**
 * Created by pc on 2020/12/14 22:48
 * Description: LearningJava
 */
/*
由于构造器的名称与类名称完全一样,并不固定,所以构造器引用使用 类名称::new 的格式表示*/

public class Demo01 {

    //定义一个方法,参数传递姓名和PersonBuilder接口,方法中通过姓名创建Person对象
    public static void printName(String name,PersonBuilder pb){
        Person person = pb.builderPerson(name);
        System.out.println(person);
    }

    public static void main(String[] args) {
     //调用printName方法,方法的参数 PersonBuilder是一个函数式接口,可以传递Lambda表达式
        printName("古力娜扎",(name)->{
            return new Person(name);
        });
        //使用方法引用优化Lambda表达式
        //构造方法new Person(String name)已知
        // 创建对象已知 new
        // 就可以使用Person引用new创建对象

        printName("赵丽颖",Person::new);//使用Person类的带参构造方法,通过传递的姓名创建对象


    }
}
